package models

// SysMenu 系统菜单
type SysMenu struct {
	Id            *int       `json:"id" gorm:"column:id;primary_key;auto_increment"`                     //ID
	CreateTime    *LocalTime `json:"createTime" gorm:"column:create_time;type:timestamp;autoCreateTime"` //创建时间
	UpdateTime    *LocalTime `json:"updateTime" gorm:"column:update_time;type:datetime;autoUpdateTime"`  //更新时间
	CreateBy      *int       `json:"createBy" gorm:"column:create_by;type:int"`                          //创建人
	DelBy         *int       `json:"delBy" gorm:"column:del_by;type:int"`                                //删除人
	Del           *int       `json:"del" gorm:"column:del;type:int"`                                     //是否删除
	Remark        *string    `json:"remark" gorm:"column:remark;type:varchar(20)"`                       //备注
	MenuName      *string    `json:"menuName" gorm:"column:menu_name;type:varchar(20)"`                  //菜单名
	IsSubMenu     *bool      `json:"isSubMenu" gorm:"column:is_sub_menu;type:tinyint"`                   //子菜单
	Icon          *string    `json:"icon" gorm:"column:icon;type:varchar(50)"`                           //图标
	ParentId      *int       `json:"parentId" gorm:"column:parent_id;type:int"`                          //上级ID
	Url           *string    `json:"url" gorm:"column:url;type:varchar(100)"`                            //路由地址
	ComponentPath *string    `json:"componentPath" gorm:"column:component_path;type:tinytext"`           //组件地址
	IsHidden      *bool      `json:"isHidden" gorm:"column:is_hidden;type:tinyint"`                      //是否隐藏
	Weight        *int       `json:"weight" gorm:"column:weight;type:tinyint"`                           //权重
	Children      []SysMenu  `json:"children" gorm:"-"`                                                  //子菜单
}

// TableName 设置表名称
func (models *SysMenu) TableName() string {
	return "sys_menu"
}

// 初始化
func init() {
	//将模型添加到注册容器中
	registerContainer = append(registerContainer, &SysMenu{})
}
